home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / pascal / setjmps.com / LEVEL1.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1991-04-06  |  794 b   |  32 lines

  1. unit level1;
  2. {$O+}
  3. {$F+}  {overlayed units are usually far call model}
  4. interface
  5.  
  6. procedure golevel1;
  7.  
  8. implementation
  9. uses setjmps,level2;
  10.  
  11.  
  12. {$I localCSfunction.inc}    {returns current Cseg of THIS unit}
  13.  
  14. procedure golevel1;
  15. VAR jmpBuffer : jmpBuf;     {this could be a global variable, then we
  16.                              wouldn't have to pass it as a parameter}
  17.     i : integer;
  18. begin
  19.   i := setjmp(jmpBuffer,localCSfunction);
  20.   writeln('at level1, right after setjmp');
  21.  
  22.   if i=0 then begin         {if initial setjmp call}
  23.     writeln('calling level2...');
  24.     golevel2(jmpBuffer);
  25.   end else begin            {else jmpBack was called}
  26.     writeln('jmpBack was called, and so setjmp returned a value of: ',i);
  27.   end;
  28.  
  29.   writeln('end of level1.');
  30. end;
  31.  
  32. end.